iT邦幫忙

2022 iThome 鐵人賽

DAY 12
0
自我挑戰組

30天Java由淺入深系列 第 12

Day 12 : 引數與參數

  • 分享至 

  • xImage
  •  

介紹

延續前一天函數的內容,我們今天繼續介紹「引數與參數」。
這邊先簡單複習一下兩者最大的差異 :

  1. 參數(Parameters) : 定義函數時寫入的變數。
  2. 引數(Arguments) : 呼叫函數時傳入的數值。
  • 與之極有關係的概念,我們可以將定義函數的式子稱為「宣告式」(declaration),呼叫函數或指定給其他變數的式子稱作「表達式」(expression)。
  • 接下來分享一個撰寫物件導向程式的觀念,我們通常會建立兩個不同類別(class),一個主要的類別我們會存放所有的變數、屬性、函數,另一個負責控制要被執行的程式碼,而且會分別放在不同檔案並一起執行,不過因為我們尚未介紹到創造物件的語法,所以此處放在同一個檔案內,並分為不同的類別。
  • 補充介紹 → 如果是使用終端機進行java檔案的執行,以下附上兩個檔案一起執行的命令 :
    https://ithelp.ithome.com.tw/upload/images/20220927/20151216o6nMd68OL9.png

以下利用附上的程式碼繼續介紹引數參數和使用方法 :

public class First{                               /*first class*/
	static void statment(){
	System.out.println("Hello, Classes !!!");
  }

	static void average(int gradeA, int gradeB, int gradeC){
	float num;
    num = ((float)x + (float)y + (float)z)/3;     //強制轉型
    return num;
	}

  static float calculate(int x, int y, int z){    // x & y are Parameters
	float ave;		 
    System.out.println("The lowest grade is : " + Math.min(x,y,z));
	ave = average(x,y,z);
	return ave;
  }

	/*public int sum(int a, int b,int c){
		int summary = a + b + c;
		return summary;
	}*/
}

public class Second{                           //second class
  public static void main(String[] args){     
     int aStudent = 92;
     int bStudent = 75;
     int cStudent = 68;
     First.statment();                // Using method in the other "class"
     float average = calculate(aStudent, bStudent, cStudent); 
     System.out.println("The average is " + average);
    
    /*System.out.println("The total is " + sum(aStudent, bStudent, cStudent));*/
  }
}
  • 程式解析 : 這支程式first class用來存函數,而second class拿來放要被執行的程式。
  1. 第一個類別(First class),我們一共寫了3個函數。第一個函數我們可以發現它在第二個類別中直接被使用,其指令為 className . method_name()。接著我們呼叫calculate函數,並將三個學生成績當作引數傳入,先印出最低分者。
  2. 值得注意的是,此函數裡我們又呼叫同類別的average函數算平均(這邊是希望大家了解函數的一些基本使用方法),再回傳到原函數,最後傳回Second類別印出。
  3. 最後我們看到分別在兩個類別被註解掉的部分,看似沒有問題,結果出來卻是error ?
    ->原因在於函數的前置修飾詞(Modifiers)是我們前一章提到需要用物件去執行的方法,並非靜態不能直接使用。

  • 如果不更改函數,則可以在第二個類別中這樣使用 :
First total = new First();    //Class_Name  Object_name  = new Class_name() ; 
System.out.println("The total is " + total.sum(aStudent, bStudent, cStudent));

後續會有更詳細關於物件的介紹,此處先記得創造一個新物件可能會用到keyword new

以上內容若有錯誤,煩請不吝嗇告知,謝謝您!!!/images/emoticon/emoticon07.gif


上一篇
Day 11 : 函數
下一篇
Day 13 : 多載與範圍
系列文
30天Java由淺入深30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言